class AbstractWrapper(object):
    """
    Abstract class representing a Data Source Wrapper. A Wrapper that implements this class
    must be able to map to a SQL paradigm. That is, it must have an explicit schema that the
    wrapper can query dynamically.
    
    A wrapper abstracts away the details of a data source, such as its host and type, so
    that we don't need to care about where the data is coming from.
    """
    
    def __init__(self, config):
        self.config = config
        
    def setSchema(self):
        """ Dynamically figures out this wrapper's schema """
        pass 

    def query(self, db): pass
